home *** CD-ROM | disk | FTP | other *** search
- // Chap21_2.cpp
- class USDollar
- {
- public:
- USDollar(unsigned int d, unsigned int c);
- USDollar& operator++();
- USDollar operator+(USDollar& s);
- protected:
- unsigned int dollars;
- unsigned int cents;
- };
-
-
- USDollar::USDollar(unsigned int d, unsigned int c)
- {
- dollars = d;
- cents = c;
- while (cents >= 100)
- {
- dollars++;
- cents -= 100;
- }
- }
-
-
- //operator+ - add s1 to s2 and return the result
- // in a new object
- USDollar USDollar::operator+(USDollar& s2)
- {
- unsigned int c = cents + s2.cents;
- unsigned int d = dollars + s2.dollars;
- USDollar t(d, c);
- return t;
- }
-
-
- //operator++ - increment the specified argument;
- // change the value of the provided object
- USDollar& USDollar::operator++()
- {
- cents++;
- if (cents >= 100)
- {
- cents -= 100;
- dollars++;
- }
- return *this;
- }
-
-
- int main()
- {
- USDollar d1(1, 60);
- USDollar d2(2, 50);
- USDollar d3(0, 0);
- d3 = d1 + d2; //very straightforward in use
- ++d3;
- return 0;
- }
-